<html xmlns:th="http://www.thymeleaf.org">
<head th:replace="admin/public/form::head(_)"/>
<body th:replace="admin/public/form::body(~{::div})">
<div class="layui-card">
    <div class="layui-card-header ">
        <span class="layui-breadcrumb">
          <a href="/admin" target="_blank">首页</a>
          <a href="javascript:;" onclick="parent.xadmin.add_tab('用户角色权限管理','/admin/role/index')">用户角色权限管理</a>
          <a><cite>编辑角色</cite></a>
        </span>
        <a class="layui-btn layui-btn-sm" style="line-height:1.6em;margin-top:3px;float:right"
           href="javascript:location.replace(location.href);" title="刷新">
            <i class="layui-icon layui-icon-refresh-3" style="line-height:30px"></i></a>
    </div>
    <div class="layui-card-body layui-tab"><!--选项卡父容器必须包含layui-tab class-->
        <ul class="layui-tab-title">
            <li class="layui-this">基本信息</li>
            <li>编辑权限</li>
        </ul>
        <div class="layui-tab-content" style="height: 100%;">
            <div class="layui-tab-item layui-show">
                <form id="form1" class="layui-form">
                    <input type="hidden" name="id" th:value="${data.id}"/>
                    <div class="layui-form-item">
                        <label class="layui-form-label">角色名称</label>
                        <div class="layui-input-block">
                            <input type="text" name="title" lay-verify="required" lay-reqtext="请输入角色名称"
                                   placeholder="请输入角色名称" autocomplete="off" class="layui-input "
                                   th:value="${data.title}">
                        </div>
                    </div>

                    <div class="layui-form-item">
                        <label class="layui-form-label">状态</label>
                        <div class="layui-input-inline">
                            <input type="radio" name="status" title="显示" th:checked="${data.status?'true':'false'}" value="1"/>
                            <input type="radio" name="status" title="隐藏" th:checked="${data.status?'false':'true'}" value="0"/>
                        </div>
                    </div>
                    <div class="layui-form-item layui-form-text">
                        <label class="layui-form-label">角色描述</label>
                        <div class="layui-input-block">
                            <textarea placeholder="请输入内容" class="layui-textarea" name="notation" th:text="${data.notation}"></textarea>
                        </div>
                    </div>
                    <div class="layui-form-item">
                        <div class="layui-input-block">
                            <button class="layui-btn" lay-submit="" lay-filter="add">立即提交</button>
                            <button type="reset" class="layui-btn layui-btn-primary">重置</button>
                        </div>
                    </div>
                </form>
            </div>
            <div class="layui-tab-item">
                <div id="test12" class="demo-tree-more"></div>
            </div>
        </div>
    </div>
</div>
</body>
<script>
    layui.use(['jquery', 'form', 'layer', 'tree', 'util', 'element',], function () {
        var $ = layui.jquery,
            form = layui.form,
            layer = layui.layer,
            tree = layui.tree,
            util = layui.util,
            element = layui.element;
        element.render();
        //基本演示
        tree.render({
            elem: '#test12'
            , data: [(${tree})]
            , showCheckbox: true  //是否显示复选框
            , id: 'demoId1'
            , isJump: false //是否允许点击节点时弹出新窗口跳转
        });
        //按钮事件
        util.event('lay-demo', {
            getChecked: function (othis) {
                var checkedData = tree.getChecked('demoId1'); //获取选中节点的数据

                layer.alert(JSON.stringify(checkedData), {shade: 0});
                console.log(checkedData);
            }
            , setChecked: function () {
                tree.setChecked('demoId1', [12, 16]); //勾选指定节点
            }
            , reload: function () {
                //重载实例
                tree.reload('demoId1', {});

            }
        });
        //监听提交
        form.on('submit(add)', function (data) {
            let send_json = data.field;
            //发异步，把数据提交给php
            var checkedData = tree.getChecked('demoId1'); //获取选中节点的数据
            function getId(checkedData,ids=''){
                for (var i = 0; i < checkedData.length; i++) {
                    ids=ids+checkedData[i].id+',';
                    if(checkedData[i].children){
                        ids= getId(checkedData[i].children,ids);
                    }
                }
                return ids;
            }
            var str=getId(checkedData);
            var rules=(str.substring(str.length-1)==',')?str.substring(0,str.length-1):str;
            send_json.rules=rules;
            let url='/admin/role/edit';
            $.ajax({
                url: url,
                method: 'post',
                data: send_json,
                dataType: 'JSON',
                success: function (res) {
                    if (res.code == 0) {
                        layer.alert("编辑成功", {
                            icon: 6
                        }, function () {
                            // 获得frame索引
                            var index = parent.layer.getFrameIndex(window.name);
                            parent.location.reload();
                            //关闭当前frame
                            parent.layer.close(index);
                        });
                    } else {
                        layer.msg(res.msg, {icon: 5});
                    }
                },
                error: function (data) {
                    layer.msg('服务器繁忙', {icon: 5});
                }
            });
            return false;
        });

        //遍历select option
        $(document).ready(function () {
            $("#pid-select option").each(function (text) {
                var level = $(this).attr('data-level');
                var text = $(this).text();
                if (level > 1) {
                    text = "├" + text;
                    for (var i = 1; i <= level; i++) {
                        text = "　　" + text;　//js中连续显示多个空格，需要使用全角的空格
                        //console.log(i+"text:"+text);
                    }
                }
                $(this).text(text);
            });
            form.render('select'); //刷新select选择框渲染
        });

    });
</script>
</html>